﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using JOthello.Forms;
using Common.Model;
using Common.Extensions;
using System.Drawing;

namespace JOthello.Controls
{
    public class SpielFertigControl
    {
        private SpielFertigForm Spielfertigform;
        private List<CSpieler> sps;
        private bool unentschieden;

        public SpielFertigControl(SpielFertigForm v, List<CSpieler> sps, bool unentschieden, bool enableReplay)
        {
            this.Spielfertigform = v;
            this.unentschieden = unentschieden;
            this.sps = sps;

            updateGUI();

            Spielfertigform.BtnReplay.Visible = enableReplay;

            Spielfertigform.BtnOk.Click += new EventHandler(BtnOk_Click);
            Spielfertigform.BtnReplay.Click += new EventHandler(BtnReplay_Click);
        }

        #region events
        private void BtnReplay_Click(object sender, EventArgs e)
        {
            Spielfertigform.DialogResult = System.Windows.Forms.DialogResult.Retry;
            Spielfertigform.Close();
        }

        private void BtnOk_Click(object sender, EventArgs e)
        {
            Spielfertigform.DialogResult = System.Windows.Forms.DialogResult.OK;
            Spielfertigform.Close();
        }
        #endregion

        private void updateGUI()
        {
            Spielfertigform.PbxGewinner.Image = sps[0].Bild.Resize(Spielfertigform.PbxGewinner.Height, (sps[0].Bild.Height / sps[0].Bild.Width) * Spielfertigform.PbxGewinner.Height);
            Spielfertigform.PbxVerlierer.Image = sps[1].Bild.Resize(Spielfertigform.PbxVerlierer.Height, (sps[1].Bild.Height / sps[1].Bild.Width) * Spielfertigform.PbxVerlierer.Height);

            Spielfertigform.LblGewinnerName.Text = sps[0].Name;
            Spielfertigform.LblVerliererName.Text = sps[1].Name;

            Spielfertigform.LblGewinnerPunkte.Text = sps[0].Punkte.ToString() + " Punkte";
            Spielfertigform.LblVerliererPunkte.Text = sps[1].Punkte.ToString() + "Punkte";

            Spielfertigform.PgbPunke.Maximum = sps[0].Punkte + sps[1].Punkte;
            Spielfertigform.PgbPunke.Minimum = 0;
            Spielfertigform.PgbPunke.Value = sps[0].Punkte;

            Spielfertigform.PnlGewinner.BackColor = sps[0].Farbe == CSpielfeld.FieldColor.Black ? Color.Black : Color.White;
            Spielfertigform.PnlVerlierer.BackColor = sps[0].Farbe == CSpielfeld.FieldColor.Black ? Color.White : Color.Black;

            Spielfertigform.LblGewinner.Visible = Spielfertigform.LblVerlierer.Visible = !(Spielfertigform.LblUnentschieden.Visible = unentschieden);
        }
    }
}
